package bf.program;

import bf.program.command.CellDecrement;
import bf.program.command.CellIncrement;
import bf.program.command.OutputCharacter;
import bf.program.command.PointerDecrement;
import bf.program.command.PointerIncrement;
import bf.program.command.ext.CellClear;

public abstract class Command implements ProgElement, CodeGenerator {

	public static final PointerIncrement PI = new PointerIncrement();
	public static final PointerDecrement PD = new PointerDecrement();
	public static final CellIncrement CI = new CellIncrement();
	public static final CellDecrement CD = new CellDecrement();
	public static final OutputCharacter OC = new OutputCharacter();
	public static final CellClear CLR = new CellClear();
	
	@Override
	public abstract void execute(State state);

}
